home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / f2c-1994 / readme < prev   
Text File  |  1994-07-14  |  12KB  |  324 lines

  1.  
  2. ====== old index for f2c, now "readme from f2c" ============
  3.  
  4. FILES:
  5.  
  6. f2c.h    Include file necessary for compiling output of the converter.
  7.     See the second NOTE below.
  8.  
  9. f2c.1    Man page for f2c.
  10.  
  11. f2c.1t    Source for f2c.1 (to be processed by troff -man or nroff -man).
  12.  
  13. libf77    Library of non I/O support routines the generated C may need.
  14.     Fortran main programs result in a C function named MAIN__ that
  15.     is meant to be invoked by the main() in libf77.
  16.  
  17. libi77    Library of Fortran I/O routines the generated C may need.
  18.     Note that some vendors (e.g., BSD, Sun and MIPS) provide a
  19.     libF77 and libI77 that are incompatible with f2c -- they
  20.     provide some differently named routines or routines with the
  21.     names that f2c expects, but with different calling sequences.
  22.     On such systems, the recommended procedure is to merge
  23.     libf77 and libi77 into a single library, say libf2c, and to
  24.         install it where you can access it by specifying -lf2c .  The
  25.         definition of link_msg in sysdep.c assumes this arrangement.
  26.  
  27. f2c.ps    Postscript for a technical report on f2c.  After you strip the
  28.     mail header, the first line should be "%!PS".
  29.  
  30. fixes    The complete change log, reporting bug fixes and other changes.
  31.     (Some recent change-log entries are given below).
  32.  
  33. fc    A shell script that uses f2c and imitates much of the behavior
  34.     of commonly found f77 commands.  You will almost certainly
  35.     need to adjust some of the shell-variable assignments to make
  36.     this script work on your system.
  37.  
  38.  
  39. SUBDIRECTORY:
  40.  
  41. f2c/src    Source for the converter itself, including a file of checksums
  42.     and source for a program to compute the checksums (to verify
  43.     correct transmission of the source), is available: ask netlib to
  44.         send all from f2c/src
  45.     If the checksums show damage to just a few source files, or if
  46.     the change log file (see "fixes" below) reports corrections to
  47.     some source files, you can request those files individually
  48.     "from f2c/src".  For example, to get defs.h and xsum0.out, you
  49.     would ask netlib to
  50.         send defs.h xsum0.out from f2c/src
  51.     "all from f2c/src" is about 640 kilobytes long; for convenience
  52.     (and checksums), it includes copies of f2c.h, f2c.1, and f2c.1t.
  53.  
  54.     Tip: if asked to send over 99,000 bytes in one request, netlib
  55.     breaks the shipment into 1000 line pieces and sends each piece
  56.     separately (since otherwise some mailers might gag).  To avoid
  57.     the hassle of reassembling the pieces, try to keep each request
  58.     under 99,000 bytes long.  The final number in each line of
  59.     xsum0.out gives the length of each file in f2c/src.  For
  60.     example,
  61.         send exec.c expr.c from f2c/src
  62.         send format.c format_data.c from f2c/src
  63.     will give you slightly less hassle than
  64.         send exec.c expr.c format.c format_data.c from f2c/src
  65.     Alternatively, if all the mailers in your return path allow
  66.     long messages, you can supply an appropriate mailsize line in
  67.     your netlib request, e.g.
  68.         mailsize 200k
  69.         send exec.c expr.c format.c format_data.c from f2c/src
  70.  
  71.     If you have trouble generating gram.c, you can ask netlib to
  72.         send gram.c from f2c/src
  73.     Then `xsum gram.c` should report
  74.         gram.c    1814e302    57355
  75.  
  76. NOTE:    For now, you may exercise f2c by sending netlib a message whose
  77.     first line is "execute f2c" and whose remaining lines are
  78.     the Fortran 77 source that you wish to have converted.
  79.     Return mail brings you the resulting C, with f2c's error
  80.     messages between #ifdef uNdEfInEd and #endif at the end.
  81.     (To understand line numbers in the error messages, regard
  82.     the "execute f2c" line as line 0.  It is stripped away by
  83.     the netlib software before f2c sees your Fortran input.)
  84.     Options described in the man page may be transmitted to
  85.     netlib by having the first line of input be a comment
  86.     whose first 6 characters are "c$f2c " and whose remaining
  87.     characters are the desired options, e.g., "c$f2c -R -u".
  88.     This scheme may change -- ask netlib to
  89.                send index from f2c
  90.         if you do not get the behavior you expect.
  91.  
  92.     During the initial experimental period, incoming Fortran
  93.     will be saved in a file.  Don't send any secrets!
  94.  
  95.  
  96. BUGS:    Please send bug reports (including the shortest example
  97.     you can find that illustrates the bug) to research!dmg
  98.     or dmg@research.att.com .  You might first check whether
  99.     the bug goes away when you turn optimization off.
  100.  
  101.  
  102. NOTE:    f2c.h defines several types, e.g., real, integer, doublereal.
  103.     The definitions in f2c.h are suitable for most machines, but if
  104.     your machine has sizeof(double) > 2*sizeof(long), you may need
  105.     to adjust f2c.h appropriately.  f2c assumes
  106.         sizeof(doublecomplex) = 2*sizeof(doublereal)
  107.         sizeof(doublereal) = sizeof(complex)
  108.         sizeof(doublereal) = 2*sizeof(real)
  109.         sizeof(real) = sizeof(integer)
  110.         sizeof(real) = sizeof(logical)
  111.         sizeof(real) = 2*sizeof(shortint)
  112.     EQUIVALENCEs may not be translated correctly if these
  113.     assumptions are violated.
  114.  
  115.     There exists a C compiler that objects to the lines
  116.         typedef VOID C_f;    /* complex function */
  117.         typedef VOID H_f;    /* character function */
  118.         typedef VOID Z_f;    /* double complex function */
  119.     in f2c.h .  If yours is such a compiler, do two things:
  120.     1. Complain to your vendor about this compiler bug.
  121.     2. Find the line
  122.         #define VOID void
  123.        in f2c.h and change it to
  124.         #define VOID int
  125.     (For readability, the f2c.h lines shown above have had two
  126.     tabs inserted before their first character.)
  127.  
  128. FTP:    All the material described above is now available by anonymous
  129.     ftp from netlib.att.com (login: anonymous; Password: your E-mail
  130.     address; cd netlib/f2c).  Note that you can say, e.g.,
  131.  
  132.         cd /netlib/f2c/src
  133.         binary
  134.         prompt
  135.         mget *.Z
  136.  
  137.     to get all the .Z files in src.  You must uncompress the .Z
  138.     files once you have a copy of them, e.g., by
  139.  
  140.         uncompress *.Z
  141.  
  142.     Subdirectory msdos contains two PC versions of f2c,
  143.     f2c.exe.Z and f2cx.exe.Z; the latter uses extended memory.
  144.     The README in that directory provides more details.
  145.  
  146. -----------------
  147. Recent change log (partial)
  148. -----------------
  149.  
  150. Tue May 10 07:55:12 EDT 1994
  151.   Trivial changes to exec.c, p1output.c, parse_args.c, proc.c,
  152. and putpcc.c: change arguments from
  153.     type foo[]
  154. to
  155.     type *foo
  156. for consistency with defs.h.  For most compilers, this makes no
  157. difference.
  158.  
  159. Thu Jun  2 12:18:18 EDT 1994
  160.   Fix bug in handling FORMAT statements that have adjacent character
  161. (or Hollerith) strings: an extraneous \002 appeared between the
  162. strings.
  163.   libf77: under -DNO_ONEXIT, arrange for f_exit to be called just
  164. once; previously, upon abnormal termination (including stop statements),
  165. it was called twice.
  166.  
  167. Mon Jun  6 15:52:57 EDT 1994
  168.   libf77: Avoid references to SIGABRT and SIGIOT if neither is defined;
  169. Version.c not changed.
  170.   libi77: Add cast to definition of errfl() in fio.h; this only matters
  171. on systems with sizeof(int) < sizeof(long).  Under -DNON_UNIX_STDIO,
  172. use binary mode for direct formatted files (to avoid any confusion
  173. connected with \n characters).
  174.  
  175. Fri Jun 10 16:47:31 EDT 1994
  176.   Fix bug under -A in handling unreferenced (and undeclared)
  177. external arguments in subroutines with multiple entry points.  Example:
  178.     subroutine m(fcn,futil)
  179.     external fcn,futil
  180.     call fcn
  181.     entry mintio(i1) ! (D_fp)0 rather than (U_fp)0 for futil
  182.     end
  183.  
  184. Wed Jun 15 10:38:14 EDT 1994
  185.   Allow char(constant expression) function in parameter declarations.
  186. (This was probably broken in the changes of 29 March 1994.)
  187.  
  188. Fri Jul  1 23:54:00 EDT 1994
  189.   Minor adjustments to makefile (rule for f2c.1 commented out) and
  190. sysdep.h (#undef KR_headers if __STDC__ is #defined, and base test
  191. for ANSI_Libraries and ANSI_Prototypes on KR_headers rather than
  192. __STDC__); version.c touched but not changed.
  193.   libi77: adjust fp.h so local.h is only needed under -DV10.
  194.  
  195. Tue Jul  5 03:05:46 EDT 1994
  196.   Fix segmentation fault in
  197.     subroutine foo(a,b,k)
  198.     data i/1/
  199.     double precision a(k,1)    ! sequence error: must precede data
  200.     b = a(i,1)
  201.     end
  202.   libi77: Fix bug (introduced 6 June 1994?) in reopening files under
  203. NON_UNIX_STDIO.
  204.   Fix some error messages caused by illegal Fortran.  Examples:
  205. * 1.
  206.     x(i) = 0  !Missing declaration for array x
  207.     call f(x) !Said Impossible storage class 8 in routine mkaddr
  208.     end      !Now says invalid use of statement function x
  209. * 2.
  210.     f = g    !No declaration for g; by default it's a real variable
  211.     call g    !Said invalid class code 2 for function g
  212.     end    !Now says g cannot be called
  213. * 3.
  214.     intrinsic foo    !Invalid intrinsic name
  215.     a = foo(b)    !Said intrcall: bad intrgroup 0
  216.     end        !Now just complains about line 1
  217.  
  218. Tue Jul  5 11:14:26 EDT 1994
  219.   Fix glitch in handling erroneous statement function declarations.
  220. Example:
  221.     a(j(i) - i) = a(j(i) - i) + 1    ! bad statement function
  222.     call foo(a(3))    ! Said Impossible type 0 in routine mktmpn
  223.     end        ! Now warns that i and j are not used
  224.  
  225. Wed Jul  6 17:31:25 EDT 1994
  226.   Tweak test for statement functions that (illegally) call themselves;
  227. f2c will now proceed to check for other errors, rather than bailing
  228. out at the first recursive statement function reference.
  229.   Warn about but retain divisions by 0 (instead of calling them
  230. "compiler errors" and quiting).  On IEEE machines, this permits
  231.     double precision nan, ninf, pinf
  232.     nan = 0.d0/0.d0
  233.     pinf = 1.d0/0.d0
  234.     ninf = -1.d0/0.d0
  235.     write(*,*) 'nan, pinf, ninf = ', nan, pinf, ninf
  236.     end
  237. to print
  238.     nan, pinf, ninf =   NaN  Infinity -Infinity
  239.   libi77: wref.c: protect with #ifdef GOOD_SPRINTF_EXPONENT an
  240. optimization that requires exponents to have 2 digits when 2 digits
  241. suffice.  lwrite.c wsfe.c (list and formatted external output):
  242. omit ' ' carriage-control when compiled with -DOMIT_BLANK_CC .
  243. Off-by-one bug fixed in character count for list output of character
  244. strings.  Omit '.' in list-directed printing of Nan, Infinity.
  245.  
  246. Mon Jul 11 13:05:33 EDT 1994
  247.   src/gram.c updated.
  248.  
  249. Tue Jul 12 10:24:42 EDT 1994
  250.   libi77: wrtfmt.c: under G11.4, write 0. as "  .0000    " rather
  251. than "  .0000E+00".
  252.  
  253. Thu Jul 14 17:55:46 EDT 1994
  254.   Fix glitch in changes of 6 July 1994 that could cause erroneous
  255. "division by zero" warnings (or worse).  Example:
  256.     subroutine foo(a,b)
  257.     y = b
  258.     a = a / y    ! erroneous warning of division by zero
  259.     end
  260.  
  261. Current timestamps of files in "all from f2c/src", sorted by time,
  262. appear below (mm/dd/year hh:mm:ss).  To bring your source up to date,
  263. obtain source files with a timestamp later than the time shown in your
  264. version.c.  Note that the time shown in the current version.c is the
  265. timestamp of the source module that immediately follows version.c below:
  266.  
  267.  7/14/1994  17:55:17  xsum0.out
  268.  7/14/1994  17:54:58  version.c
  269.  7/14/1994  17:54:51  expr.c
  270.  7/06/1994  15:47:09  exec.c
  271.  7/06/1994   9:33:19  defs.h
  272.  7/05/1994   1:02:52  proc.c
  273.  7/05/1994   0:54:42  output.c
  274.  7/04/1994  23:56:08  vax.c
  275.  7/01/1994  23:46:42  sysdep.h
  276.  7/01/1994  23:24:55  makefile
  277.  6/15/1994  10:34:02  data.c
  278.  6/01/1994  11:04:14  io.c
  279.  5/10/1994   7:42:54  putpcc.c
  280.  5/10/1994   7:42:53  parse_args.c
  281.  5/10/1994   7:42:53  p1output.c
  282.  3/05/1994   2:02:49  f2c.1
  283.  3/05/1994   2:02:42  f2c.1t
  284.  3/05/1994   1:05:18  main.c
  285.  3/05/1994   0:57:28  sysdep.c
  286.  3/05/1994   0:56:34  names.c
  287.  3/04/1994  23:58:15  misc.c
  288.  3/04/1994  23:42:15  pread.c
  289.  2/28/1994  11:32:36  README
  290.  2/25/1994  22:18:14  xsum.c
  291.  2/25/1994  14:16:00  Notice
  292.  2/25/1994  12:18:21  format.c
  293.  2/25/1994  12:18:21  lex.c
  294.  2/25/1994  11:01:20  niceprintf.c
  295.  2/25/1994  10:56:33  error.c
  296.  2/25/1994  10:25:21  gram.head
  297.  2/25/1994  10:24:56  put.c
  298.  2/25/1994  10:24:54  init.c
  299.  2/25/1994  10:24:54  mem.c
  300.  2/25/1994  10:24:54  formatdata.c
  301.  2/25/1994  10:24:54  malloc.c
  302.  2/25/1994  10:24:54  intr.c
  303.  2/25/1994  10:24:53  equiv.c
  304.  2/25/1994  10:24:52  cds.c
  305.  2/25/1994   2:07:19  parse.h
  306.  2/22/1994  19:07:20  iob.h
  307.  2/22/1994  18:56:53  p1defs.h
  308.  2/22/1994  18:53:46  output.h
  309.  2/22/1994  18:51:14  names.h
  310.  2/22/1994  18:30:41  format.h
  311.  1/18/1994  18:12:52  tokens
  312.  1/18/1994  18:12:52  gram.dcl
  313.  6/01/1993  23:10:00  f2c.h
  314.  3/06/1993  14:13:58  gram.expr
  315.  3/04/1993  14:59:25  gram.exec
  316.  1/28/1993   9:03:16  ftypes.h
  317.  1/25/1993  11:26:33  defines.h
  318.  4/06/1990   0:00:57  gram.io
  319.  2/03/1990   0:58:26  niceprintf.h
  320.  1/29/1990  13:26:52  memset.c
  321.  1/07/1990   1:20:01  usignal.h
  322. 11/27/1989   8:27:37  machdefs.h
  323.  7/01/1989  11:59:44  pccdefs.h
  324.